package com.seavenois.alife2;

/*************************************************/
/* Class containing static values to be refereed */
/* from every part of the game that needs them ***/
/*************************************************/
public final class Values {
	//TODO: check compatibility and edit value
	public static final int DRAWABLE_HEIGHT = 270;
	
	//UI values
	static final int LOW_PANEL_HEIGHT = 80;
	static final float LOW_PANEL_DIVIDER_1 = .2f;
	static final float LOW_PANEL_DIVIDER_2 = .5f;
	static final float LOW_PANEL_DIVIDER_3 = .8f;
	
	//Game start modes
	static final byte INIT_NEW = 0; 
	static final byte INIT_LOAD = 1;
	
	//Game values
	static final int INITIAL_MONEY = 100000000; //TODO: Divide by 100
	static final float INITIAL_SOUL_RATE = 0.1f;
	static final int TIME_SLOW = 1500;
	static final int TIME_NORMAL = 375;
	static final int TIME_FAST = 75;
	
	//Scenario
	public static final byte SCENARIO_HELL = 0;
	public static final byte SCENARIO_HEAVEN = 1;
	
	//Destiny codes
	static final int REINCARNATION = 0;
	static final int INSTRUCTION = 1;
	
	//Color codes
	static final int COLOR_NONE = 0;
	static final int COLOR_MAROON = 1;
	static final int COLOR_PINK = 2;
	static final int COLOR_YELLOW = 3;
	static final int COLOR_BLUE = 4;
	static final int COLOR_RED = 5;
	static final int COLOR_GREEN = 6;
	static final int COLOR_PURPLE = 7;
	
	//Money lost for loosing souls
	static final float LOOS_HOSTING = 1;
	static final float LOOS_TRAINING = 2;
	static final float LOOS_REINCARNATION = 5;
	
	//Salaries
	static final float SALARY_RESIDENT = 2;
	static final float SALARY_COMMUTING = 3;
	static final float SALARY_IMPORTED = 6;
	static final float UNEMPLOYMENT_CHECK = 12;
	
	//Energy prices
	
	static final float ENERGY_LOCAL = 1;
	static final float ENERGY_IMPORTED = 3;
	
	//Money earned for reincarnation
	static final float MONEY_REINCARNATION = 5;
	
	//Ages when area boxes will be updated
	public static final int AGE_1 = 15;
	public static final int AGE_2 = 100;
	public static final int AGE_3 = 500;
	
	//Special building soul amount code
    static final int SPECIAL_1_SOULS = 100000;
    static final int SPECIAL_2_SOULS = 1000000;
    static final int SPECIAL_3_SOULS = 10000000;
	
	//Building codes
    static final byte BUILDING_NONE = 0;
    static final byte BUILDING_MAROON_1 = 1;
    static final byte BUILDING_MAROON_BUILDING = 70;
    static final byte BUILDING_MAROON_BUILT = 71;
    static final byte BUILDING_MAROON_2_GOOD = 2;
    static final byte BUILDING_MAROON_2_NEUTRAL = 3; 
    static final byte BUILDING_MAROON_2_BAD = 4;
    static final byte BUILDING_MAROON_3_GOOD = 5;
    static final byte BUILDING_MAROON_3_NEUTRAL = 6;
    static final byte BUILDING_MAROON_3_BAD = 7;
    static final byte BUILDING_PINK_1 = 8;
    static final byte BUILDING_PINK_BUILDING = 72;
    static final byte BUILDING_PINK_BUILT = 73;
    static final byte BUILDING_PINK_2_GOOD = 9;
    static final byte BUILDING_PINK_2_NEUTRAL = 10; 
    static final byte BUILDING_PINK_2_BAD = 11;
    static final byte BUILDING_PINK_3_GOOD = 12;
    static final byte BUILDING_PINK_3_NEUTRAL = 13;
    static final byte BUILDING_PINK_3_BAD = 14;
    static final byte BUILDING_YELLOW_1 = 15;
    static final byte BUILDING_YELLOW_BUILDING = 74;
    static final byte BUILDING_YELLOW_BUILT = 75;
    static final byte BUILDING_YELLOW_2_GOOD = 16;
    static final byte BUILDING_YELLOW_2_NEUTRAL = 17;
    static final byte BUILDING_YELLOW_2_BAD = 18;
    static final byte BUILDING_YELLOW_3_GOOD = 19;
    static final byte BUILDING_YELLOW_3_NEUTRAL = 20;
    static final byte BUILDING_YELLOW_3_BAD = 21;
    static final byte BUILDING_BLUE_1 = 22;
    static final byte BUILDING_BLUE_BUILDING = 76;
    static final byte BUILDING_BLUE_BUILT = 77;
    static final byte BUILDING_BLUE_2_GOOD = 23;
    static final byte BUILDING_BLUE_2_NEUTRAL = 24;
    static final byte BUILDING_BLUE_2_BAD = 25;
    static final byte BUILDING_BLUE_3_GOOD = 26;
    static final byte BUILDING_BLUE_3_NEUTRAL = 27; 
    static final byte BUILDING_BLUE_3_BAD = 28;
    static final byte BUILDING_RED_1 = 29;
    static final byte BUILDING_RED_BUILDING = 78;
    static final byte BUILDING_RED_BUILT = 79;
    static final byte BUILDING_RED_2_GOOD = 30;
    static final byte BUILDING_RED_2_NEUTRAL = 31;
    static final byte BUILDING_RED_2_BAD = 32;
    static final byte BUILDING_RED_3_GOOD = 33;
    static final byte BUILDING_RED_3_NEUTRAL = 34;
    static final byte BUILDING_RED_3_BAD = 35;
    static final byte BUILDING_GREEN_1 = 36;
    static final byte BUILDING_GREEN_BUILDING = 80;
    static final byte BUILDING_GREEN_BUILT = 81;
    static final byte BUILDING_GREEN_2_GOOD = 37;
    static final byte BUILDING_GREEN_2_NEUTRAL = 38; 
    static final byte BUILDING_GREEN_2_BAD = 39;
    static final byte BUILDING_GREEN_3_GOOD = 40;
    static final byte BUILDING_GREEN_3_NEUTRAL = 41; 
    static final byte BUILDING_GREEN_3_BAD = 42;
    static final byte BUILDING_PURPLE_1 = 43;
    static final byte BUILDING_PURPLE_BUILDING = 82;
    static final byte BUILDING_PURPLE_BUILT = 83;
    static final byte BUILDING_PURPLE_2_GOOD = 44;
    static final byte BUILDING_PURPLE_2_NEUTRAL = 45;
    static final byte BUILDING_PURPLE_2_BAD = 46;
    static final byte BUILDING_PURPLE_3_GOOD = 47;
    static final byte BUILDING_PURPLE_3_NEUTRAL = 48; 
    static final byte BUILDING_PURPLE_3_BAD = 49;
    static final byte BUILDING_DOOR_1 = 50;
    static final byte BUILDING_TOPIA_1 = 51;
    static final byte BUILDING_ACADEMY_1 = 52;
    static final byte BUILDING_STATION_1 = 53;
    static final byte BUILDING_SIPHON_1 = 54;
    static final byte BUILDING_DOOR_2 = 55;
    static final byte BUILDING_TOPIA_2 = 56;
    static final byte BUILDING_ACADEMY_2 = 57;
    static final byte BUILDING_STATION_2 = 58;
    static final byte BUILDING_SIPHON_2 = 59;
    static final byte BUILDING_DOOR_3 = 60;
    static final byte BUILDING_TOPIA_3 = 61;
    static final byte BUILDING_ACADEMY_3 = 62;
    static final byte BUILDING_STATION_3 = 63;
    static final byte BUILDING_SIPHON_3 = 64;
    static final byte BUILDING_SPECIAL_1 = 65;
    static final byte BUILDING_SPECIAL_2 = 66;
    static final byte BUILDING_SPECIAL_3 = 67;
	
	//Soul hosting boxes properties
    static final int HOSTING_1_WORKERS = 120;
    static final int HOSTING_1_PRICE = 10000;
    static final int HOSTING_1_CONSUMPTION = 1;
    static final int HOSTING_1_CAPACITY = 75;
    static final double HOSTING_1_VIBES = 0;
    static final int HOSTING_2_BAD_WORKERS = 660;
    static final int HOSTING_2_BAD_CONSUMPTION = 8;
    static final int HOSTING_2_BAD_CAPACITY = 225;
    static final double HOSTING_2_BAD_VIBES = -0.1;
    static final int HOSTING_2_NEUTRAL_WORKERS = 530;
    static final int HOSTING_2_NEUTRAL_CONSUMPTION = 5;
    static final int HOSTING_2_NEUTRAL_CAPACITY = 300;
    static final double HOSTING_2_NEUTRAL_VIBES = 0;
    static final int HOSTING_2_GOOD_WORKERS = 400;
    static final int HOSTING_2_GOOD_CONSUMPTION = 3;
    static final int HOSTING_2_GOOD_CAPACITY = 375;
    static final double HOSTING_2_GOOD_VIBES = 0.1;
    static final int HOSTING_3_BAD_WORKERS = 2200;
    static final int HOSTING_3_BAD_CONSUMPTION = 80;
    static final int HOSTING_3_BAD_CAPACITY = 700;
    static final double HOSTING_3_BAD_VIBES = -0.3;
    static final int HOSTING_3_NEUTRAL_WORKERS = 1700;
    static final int HOSTING_3_NEUTRAL_CONSUMPTION = 50;
    static final int HOSTING_3_NEUTRAL_CAPACITY = 1000;
    static final double HOSTING_3_NEUTRAL_VIBES = 0;
    static final int HOSTING_3_GOOD_WORKERS = 1200;
    static final int HOSTING_3_GOOD_CONSUMPTION = 30;
    static final double HOSTING_3_GOOD_VIBES = 0.3;
    static final int HOSTING_3_GOOD_CAPACITY = 1300;
	
	//Doors properties
    static final int DOOR_1_WORKERS = 500;
    static final int DOOR_1_PRICE = 50000;
    static final int DOOR_1_INPUT = 200;
    static final int DOOR_1_CONSUMPTION = 50;
    static final double DOOR_1_VIBES = -0.3;
    static final int DOOR_2_WORKERS = 1000;
    static final int DOOR_2_PRICE = 500000;
    static final int DOOR_2_INPUT = 2000;
    static final int DOOR_2_CONSUMPTION = 250;
    static final double DOOR_2_VIBES = -0.5;
    static final int DOOR_3_WORKERS = 2000;
    static final int DOOR_3_PRICE = 5000000;
    static final int DOOR_3_INPUT = 20000;
    static final int DOOR_3_CONSUMPTION = 2500;
    static final double DOOR_3_VIBES = -0.7;
    
  //Topias properties
    static final int TOPIA_1_WORKERS = 70;
    static final int TOPIA_1_PRICE = 100000;
    static final int TOPIA_1_CONSUMPTION = 300;
    static final int TOPIA_1_BEDS = 5000;
    static final double TOPIA_1_VIBES = 0.65;
    static final int TOPIA_2_WORKERS = 210;
    static final int TOPIA_2_PRICE = 1000000;
    static final int TOPIA_2_CONSUMPTION = 1500;
    static final int TOPIA_2_BEDS = 50000;
    static final double TOPIA_2_VIBES = 0.9;
    static final int TOPIA_3_WORKERS = 630;
    static final int TOPIA_3_PRICE = 12500000;
    static final int TOPIA_3_CONSUMPTION = 15000;
    static final double TOPIA_3_VIBES = 1.5;
    static final int TOPIA_3_BEDS = 500000;
    
    //Academy properties
    static final int ACADEMY_1_WORKERS = 200;
    static final int ACADEMY_1_PRICE = 100000;
    static final int ACADEMY_1_TRAIN = 70;
    static final int ACADEMY_1_CONSUMPTION = 100;
    static final double ACADEMY_1_VIBES = 0.44;
    static final int ACADEMY_2_WORKERS = 450;
    static final int ACADEMY_2_PRICE = 250000;
    static final int ACADEMY_2_TRAIN = 175;
    static final int ACADEMY_2_CONSUMPTION = 500;
    static final double ACADEMY_2_VIBES = 0;
    static final int ACADEMY_3_WORKERS = 2000;
    static final int ACADEMY_3_PRICE = 1000000;
    static final int ACADEMY_3_TRAIN = 700;
    static final int ACADEMY_3_CONSUMPTION = 3000;
    static final double ACADEMY_3_VIBES = 0;
    
    //Stations properties
    static final int STATION_1_WORKERS = 100;
    static final int STATION_1_PRICE = 10000;
    static final int STATION_1_TICKETS = 100;
    static final int STATION_1_CONSUMPTION = 300;
    static final double STATION_1_VIBES = -0.65;
    static final int STATION_2_WORKERS = 5000;
    static final int STATION_2_PRICE = 500000;
    static final int STATION_2_TICKETS = 5000;
    static final int STATION_2_CONSUMPTION = 2500;
    static final double STATION_2_VIBES = -0.9;
    static final int STATION_3_WORKERS = 25000;
    static final int STATION_3_PRICE = 5000000;
    static final int STATION_3_TICKETS = 15000;
    static final int STATION_3_CONSUMPTION = 25000;
    static final double STATION_3_VIBES = -1.5;
    
    //Siphons properties
    static final int SIPHON_1_WORKERS = 5;
    static final int SIPHON_1_PRICE = 50000;
    static final int SIPHON_1_PRODUCTION = 600;
    static final double SIPHON_1_VIBES = -0.5;
    static final int SIPHON_2_WORKERS = 25;
    static final int SIPHON_2_PRICE = 250000;
    static final int SIPHON_2_PRODUCTION = 3000;
    static final double SIPHON_2_VIBES = -0.6;
    static final int SIPHON_3_WORKERS = 250;
    static final int SIPHON_3_PRICE = 2500000;
    static final int SIPHON_3_PRODUCTION= 15000;
    static final double SIPHON_3_VIBES = -0.8;
    
    //Special Buildings properties
    static final double SPECIAL_1_VIBES = 2;
    static final double SPECIAL_2_VIBES = 4;
    static final double SPECIAL_3_VIBES = 6;
    
    //Vibes threshold
    static final double VIBES_DIVINE = 0.79;
    static final double VIBES_AMAZING = 0.49;
    static final double VIBES_GOOD = 0.19;
    static final double VIBES_BAD = -0.19;
    static final double VIBES_HORRIBLE = -0.49;
    static final double VIBES_CHAOTIC = -0.79;
    
    //Reincarnation preference possibility
    static final int REINCARNATION_RATE = 3;
    
    //Training duration
    static final int TRAINING_DURATION = 300;
}
